package com.carrey.dongyoufa.service.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.carrey.dongyoufa.dao.ArticleDao;
import com.carrey.dongyoufa.entity.Article;
import com.carrey.dongyoufa.entity.Collect;
import com.carrey.dongyoufa.entity.Comments;
import com.carrey.dongyoufa.entity.Link;
import com.carrey.dongyoufa.entity.Slide;
import com.carrey.dongyoufa.entity.User;
import com.carrey.dongyoufa.service.ArticleService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;

@Service
public class ArticleServiceImpl implements ArticleService {

	@Autowired
	private ArticleDao articleDao;

	/**
	 * 查询文章
	 */
	@Override
	public PageInfo<Article> getArticles(Integer pageNum, Integer pageSize, Article article) {

		// 分页封装
		PageHelper.startPage(pageNum, pageSize);
		// 数据查询
		List<Article> list = articleDao.getArticles(article);
		return new PageInfo<Article>(list);
	}

	/**
	 * 查询轮播图
	 */
	@Override
	public List<Slide> getSlides() {
		// TODO Auto-generated method stub
		return articleDao.getSlides();
	}

	/**
	 * 点击量排行查询
	 */
	@Override
	public PageInfo<Article> listByHits(int i, int j, Article ahit) {
		// 分页封装
		PageHelper.startPage(i, j);
		List<Article> list = articleDao.listByHits(ahit);
		return new PageInfo<Article>(list);
	}

	/**
	 * 查询超链接
	 */
	@Override
	public List<Link> getLinks() {

		return articleDao.getLinks();
	}

	// 获取文章
	@Override
	public Article getDetailById(Integer articleId) {
		return articleDao.getDetailById(articleId);
	}

	// 获取文章评论
	@Override
	public PageInfo<Comments> getCommentsByArticleId(Integer articleId, Integer pageNum, Integer pageSize) {
		// 分页封装
		PageHelper.startPage(pageNum, pageSize);
		// 数据查询
		List<Comments> list = articleDao.getCommentsByArticleId(articleId);
		return new PageInfo<Comments>(list);
	}

	// 添加评论
	@Override
	public boolean addComments(Comments comments) {
		return articleDao.addComments(comments);
	}

	// 修改文章
	@Override
	public boolean update(Article article) {
		return articleDao.update(article);
	}

	// 发布文章
	@Override
	public boolean add(Article article) {
		
		return articleDao.add(article);
	}

	// 根据用户查询文章
	@Override
	public PageInfo<Article> listByUser(Integer pageNum, Integer pageSize, User user) {
		// 分页封装
				PageHelper.startPage(pageNum, pageSize);
				// 数据查询
				List<Article> list = articleDao.listByUser(user);
				return new PageInfo<Article>(list);
	}

	
	// add 收藏
	@Override
	public void addCollect(Collect collect) {
		articleDao.addCollect(collect);
	}

	// 删除
	@Override
	public boolean delCollect(Collect collect) {
		return articleDao.delCollect(collect);
	}

	// 获取单个
	@Override
	public Collect getCollectByArticleId(Collect collect) {
		return articleDao.getCollectByArticleId(collect);
	}

	// 获取收藏列表
	@Override
	public PageInfo<Collect> getCollect(Integer pageNum, Integer pageSize, User user) {
		// 分页封装
		PageHelper.startPage(pageNum, pageSize);
		// 数据查询
		List<Collect> list = articleDao.getCollect(user);
		return new PageInfo<Collect>(list);
	}

	// 查询评论信息
	@Override
	public PageInfo<Comments> getCommentByUser(Integer pageNum, Integer pageSize, User user) {
		// 分页封装
				PageHelper.startPage(pageNum, pageSize);
				// 数据查询
				List<Comments> list = articleDao.getCommentByUser(user);
				return new PageInfo<Comments>(list);
	}

}
